package com.ruoyi.coupons.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 优惠券管理对象 coupons
 * 
 * @author ruoyi
 * @date 2024-11-28
 */
public class Coupons extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 标识 */
    @Excel(name = "标识")
    private Long couponsId;

    /** 优惠券名称 */
    @Excel(name = "优惠券名称")
    private String couponsName;

    /** 要发布优惠券商品的Id（单商品使用） */
    @Excel(name = "要发布优惠券商品的Id", readConverterExp = "单=商品使用")
    private Long couponsGoodsId;

    /** 要发布优惠券店铺id（整个店铺通用） */
    @Excel(name = "要发布优惠券店铺id", readConverterExp = "整=个店铺通用")
    private Long couponsShopId;

    /** 优惠力度 */
    @Excel(name = "优惠力度")
    private Long couponsDiscounts;

    /** 优惠券开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠券开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date couponsBeginTime;

    /** 优惠券到期时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠券到期时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date couponsFinishTime;

    /** 审核状态（1：待审核，2：已通过2，3：未通过） */
    @Excel(name = "审核状态", readConverterExp = "1=：待审核，2：已通过2，3：未通过")
    private Long couponsStart;

    /** 每个用户最多领取数量 */
    @Excel(name = "每个用户最多领取数量")
    private Long couponsLimitNumber;

    /** 优惠券领取时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠券领取时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date couponsReceiveTime;

    /** 优惠券结束领取时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "优惠券结束领取时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date couponsEndReceiveTime;

    /** 已发放优惠券数量 */
    @Excel(name = "已发放优惠券数量")
    private Long couponsIssueNumber;

    /** 已使用优惠券数量 */
    @Excel(name = "已使用优惠券数量")
    private Long couponsUsedNumber;

    public void setCouponsId(Long couponsId) 
    {
        this.couponsId = couponsId;
    }

    public Long getCouponsId() 
    {
        return couponsId;
    }
    public void setCouponsName(String couponsName) 
    {
        this.couponsName = couponsName;
    }

    public String getCouponsName() 
    {
        return couponsName;
    }
    public void setCouponsGoodsId(Long couponsGoodsId) 
    {
        this.couponsGoodsId = couponsGoodsId;
    }

    public Long getCouponsGoodsId() 
    {
        return couponsGoodsId;
    }
    public void setCouponsShopId(Long couponsShopId) 
    {
        this.couponsShopId = couponsShopId;
    }

    public Long getCouponsShopId() 
    {
        return couponsShopId;
    }
    public void setCouponsDiscounts(Long couponsDiscounts) 
    {
        this.couponsDiscounts = couponsDiscounts;
    }

    public Long getCouponsDiscounts() 
    {
        return couponsDiscounts;
    }
    public void setCouponsBeginTime(Date couponsBeginTime) 
    {
        this.couponsBeginTime = couponsBeginTime;
    }

    public Date getCouponsBeginTime() 
    {
        return couponsBeginTime;
    }
    public void setCouponsFinishTime(Date couponsFinishTime) 
    {
        this.couponsFinishTime = couponsFinishTime;
    }

    public Date getCouponsFinishTime() 
    {
        return couponsFinishTime;
    }
    public void setCouponsStart(Long couponsStart) 
    {
        this.couponsStart = couponsStart;
    }

    public Long getCouponsStart() 
    {
        return couponsStart;
    }
    public void setCouponsLimitNumber(Long couponsLimitNumber) 
    {
        this.couponsLimitNumber = couponsLimitNumber;
    }

    public Long getCouponsLimitNumber() 
    {
        return couponsLimitNumber;
    }
    public void setCouponsReceiveTime(Date couponsReceiveTime) 
    {
        this.couponsReceiveTime = couponsReceiveTime;
    }

    public Date getCouponsReceiveTime() 
    {
        return couponsReceiveTime;
    }
    public void setCouponsEndReceiveTime(Date couponsEndReceiveTime) 
    {
        this.couponsEndReceiveTime = couponsEndReceiveTime;
    }

    public Date getCouponsEndReceiveTime() 
    {
        return couponsEndReceiveTime;
    }
    public void setCouponsIssueNumber(Long couponsIssueNumber) 
    {
        this.couponsIssueNumber = couponsIssueNumber;
    }

    public Long getCouponsIssueNumber() 
    {
        return couponsIssueNumber;
    }
    public void setCouponsUsedNumber(Long couponsUsedNumber) 
    {
        this.couponsUsedNumber = couponsUsedNumber;
    }

    public Long getCouponsUsedNumber() 
    {
        return couponsUsedNumber;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("couponsId", getCouponsId())
            .append("couponsName", getCouponsName())
            .append("couponsGoodsId", getCouponsGoodsId())
            .append("couponsShopId", getCouponsShopId())
            .append("couponsDiscounts", getCouponsDiscounts())
            .append("couponsBeginTime", getCouponsBeginTime())
            .append("couponsFinishTime", getCouponsFinishTime())
            .append("couponsStart", getCouponsStart())
            .append("couponsLimitNumber", getCouponsLimitNumber())
            .append("couponsReceiveTime", getCouponsReceiveTime())
            .append("couponsEndReceiveTime", getCouponsEndReceiveTime())
            .append("couponsIssueNumber", getCouponsIssueNumber())
            .append("couponsUsedNumber", getCouponsUsedNumber())
            .toString();
    }
}
